/***********************************************************
  BLH -> ECEF 変換
  : WGS84 の緯度(Beta)／経度(Lambda)／楕円体高(Height)を
    ECEF（Earth Centered Earth Fixed; 地球中心・地球固定直交座標系）座標に
    変換する。

    DATE        AUTHOR       VERSION
    2021.04.30  mk-mode.com  1.00 新規作成

  Copyright(C) 2021 mk-mode.com All Rights Reserved.

  ----------------------------------------------------------
  引数 : B L H
         (B, L, H: 元の BLH(WGS84) 座標)
  ----------------------------------------------------------
  $ g++102 -std=c++17 -Wall -O2 --pedantic-errors -o blh2ecef blh2ecef.cpp
***********************************************************/
#pragma once
#include <cmath>
#include <cstdlib>   // for EXIT_XXXX
#include <iomanip>
#include <iostream>

namespace blh2ecef {

// 座標
struct CoordB {
  double b;  // B(Beta)
  double l;  // L(Lambda)
  double h;  // H(Height)
};
struct CoordX {
  double x;  // X
  double y;  // Y
  double z;  // Z
};

/*
 * @brief      関数 N
 *
 * @param[in]  X (double)
 * @return     計算結果 (double)
 */
double n(double x);

/*
 * @brief      BLH -> ECEF
 *
 * @param[in]  BLH  座標 (CoordB)
 * @return     ECEF 座標 (CoordX)
 */
CoordX blh2ecef(CoordB c_src);

}  // namespace blh2ecef
